1. Field of the Invention
The present invention relates to a system, method, and computer program product that may provide the capability to handle a variety of types of transactions, validate transactions, provide the capability to control the execution of confidential of transactions, control access to transactions, for auditing transactions, and to provide accountability of the validating entities.
2. Description of the Related Art
A transaction ledger is a concept that was introduced in the context of decentralized payment systems, such as BITCOIN®, to denote an ordered set of transactions that have been validated or confirmed within the system up to a certain point in time. For security purposes, the ledger is supposed to include only valid transactions and, as far as these transactions are included in the ledger, it should be impossible for someone to remove it from there. BITCOIN®, and most cryptocurrencies implement a distributed ledger, comprised of the peers in the network, i.e., by having the network peers decide which transaction should be validated by means of a consensus protocol.
Recently, however, there have been attempts to provide a ledger that is built in a centralized way, i.e., having a single entity be responsible for building the ledger given a set of announced transactions. Though introduced in systems that serve payments, the ledger was developed to account for various types of transactions, aka smart contracts, where users may perform payments under certain conditions, e.g., if a particular computation is performed by the other party. One of the main benefits of a ledger in these systems is that it can be public, and the transactions in it publicly verifiable. That is, every user of the system may be able to obtain the ledger, and his/her transactions, verify that the list of transactions in the ledger are valid, and verify the correctness of the ledger itself, for example, by confirming that the entity that extends the ledger by adding more transactions to it confirms only valid transactions. The benefits of a public ledger become greater due the variety of applications that can be built on top of it through smart contracts.
Given their public nature, it is important that transactions that are added in ledgers respect the right of privacy of individuals. The programmable ledger community has worked in two different directions to enhance transaction privacy. The first is adopting pseudonymity, i.e., allowing users to generate an arbitrary number of pseudonyms and participate through them in their transactions. The second direction concerns solely payment transactions and leverages cryptographic primitives to hide the participants and the amount of the payment, though making it easy for anyone to confirm that a payment is valid. However, a need arises for systems that can handle other types of transactions, not just payment transactions. In addition, a need arises for users to be able to control the confidentiality of their transactions, for the system to control access to transactions, for the system to be capable of auditing transactions, and to provide accountability of the validating entities.